Methods And Systems For Providing An About Me User Interface For An Enterprise Social Network

ABSTRACT

A method for providing an about me user interface for an enterprise social network including users associated with an entity. The method can include receiving a request for user information. The request can include a name of a user of the enterprise social network. In response to receiving a request, user information can be obtained from one or more databases associated with the enterprise social network. The obtained user information can comprise information previously obtained from the named user and information obtained from one or more external software systems that the named user is currently assigned. The obtained information can be transmitted to a user system associated with a user who requested the user information for display.

CLAIM OF PRIORITY

This application claims the benefit of U.S. Provisional PatentApplication 61/444,544, entitled METHODS AND SYSTEM FOR APPLYING GAMEMECHANICS TO AN ENTERPRISE SOCIAL NETWORK, by Porro et al., filed Feb.18, 2011 (Attorney Docket No. 20175.0007.PZUS00/614PROV), the entirecontents of which are incorporated herein by reference.

FIELD OF THE INVENTION

One or more implementations relate generally to methods and system forproviding an about me user interface for an enterprise social network.

BACKGROUND

Enterprise social networks can include consumer social networks, forexample, Facebook® and Twitter® have been specially adapted to oradopted by an enterprise, or can include social networks specificallydesigned for the enterprise environment. For example, Chatter®, which isoffered by salesforce.com, inc. of San Francisco, Calif., is an exampleof an enterprise social network that can be adapted or adopted by anenterprise. Social networks often contain large amounts of data for eachuser, because each user can contribute, collaborate, and shareinformation with other social network users. In the enterpriseenvironment, this information can include postings on the status of adeal or project, short summaries of what the posting user is doing,and/or public online conversations about a certain topic on a feed or“wall.” Because this information is published to a social network, theinformation can provide a false value to the social network, e.g., themost “influential” user. For example, an influential user can have alarge number of followers, or may publish postings that are re-publishedto others users and/or are often receive the largest number of comments.

While following or commenting on another user's posts is one way toidentify influential users, this measure of influence is only related tocontent posted on a user's feed. In other words, influence is directlyrelated to actions by the user on the social network. However, this maynot provide a complete picture of the user's value to the enterprise.For example, a user may have a large amount of time to post and notactually perform the user's expected tasks on behalf of the enterprise.In addition, the enterprise social network may not capture all of theemployee's activities that merit recognition. For example, if anemployee helps another employee on a project but the project does nothave related content on an enterprise social network, or neitheremployee mentions that another employee helped with a project, thiscollaboration may not be recorded on the enterprise social network. As aresult, it would be helpful to motivate recordings of such mutuallybeneficial conduct on the enterprise social network, so that such workcan be recognized and possibly rewarded for the employee's actions.Alternatively or additionally, an employee may be helping others onprojects that are unrelated to that employee's primary jobresponsibilities. Such generous acts would likely not be traceable,either on the enterprise social network or otherwise. Therefore,providing a forum for awarding employees for work outside of theirprimary job responsibilities and/or awarding employees who went aboveand beyond their primary job responsibilities would be beneficial. Sucha forum for providing a recognition forum for employees regardless ofjob title, such that peers or employees can recognize each other'sachievements would be beneficial and can create a more pleasant workenvironment.

BRIEF DESCRIPTION OF THE DRAWINGS

In the following drawings like reference numbers are used to refer tolike elements. Although the following figures depict various examples,the one or more implementations are not limited to the examples depictedin the figures.

FIG. 1A is a block diagram screenshot of an ongoing feedback userinterface for an enterprise social network in accordance with anexemplary embodiment;

FIG. 1B is a screenshot of an ongoing feedback user interface for anenterprise social network in accordance with an exemplary embodiment;

FIG. 1C is a screenshot of an ongoing feedback user interface forentering ongoing feedback in accordance with an exemplary embodiment;

FIG. 2A is a block diagram screenshot of an about me user interface foran enterprise social network in accordance with an exemplary embodiment;

FIG. 2B is a screenshot of an about me user interface for an enterprisesocial network in accordance with an exemplary embodiment;

FIG. 3A is a block diagram screenshot of a recognition user interfacefor an enterprise social network in accordance with an exemplaryembodiment;

FIG. 3B is a screenshot of a recognition user interface for anenterprise social network in accordance with an exemplary embodiment;

FIG. 4A is a block diagram screenshot of a challenge user interface foran enterprise social network in accordance with an exemplary embodiment;

FIG. 4B is a screenshot of a challenge user interface for an enterprisesocial network in accordance with an exemplary embodiment;

FIG. 5A is a block diagram screenshot of a my stats user interface foran enterprise social network in accordance with an exemplary embodiment;

FIG. 5B is a screenshot of a my stats user interface for an enterprisesocial network in accordance with an exemplary embodiment;

FIG. 6A is a block diagram screenshot of a my challenge user interfacefor an enterprise social network in accordance with an exemplaryembodiment;

FIG. 6B is a screenshot of a my challenge user interface for anenterprise social network in accordance with an exemplary embodiment;

FIG. 7 is a block diagram of an example of an environment wherein anon-demand database service can be used;

FIG. 8 is a block diagram of an embodiment of elements of FIG. 6 andvarious possible interconnections between these elements;

FIG. 9 is a flowchart for a method for providing ongoing feedback to auser of an enterprise social network in accordance with an exemplaryimplementation;

FIG. 10 is a flowchart for a method for reviewing about me informationrelated to a user of an enterprise social network in accordance with anexemplary implementation;

FIG. 11 is a flowchart for a method for awarding recognition to a userof an enterprise social network in accordance with an exemplaryimplementation;

FIG. 12 is a flowchart for a method for displaying a recognition leaderboard for an enterprise social network in accordance with an exemplaryimplementation;

FIG. 13 is a flowchart for a method for a user to participate in achallenge of an enterprise social network in accordance with anexemplary implementation;

FIG. 14 is a flowchart for a method for displaying a challenge leaderboard for an enterprise social network in accordance with an exemplaryimplementation;

FIG. 15 is a flowchart for a method for reviewing my stats informationrelated to a user of an enterprise social network in accordance with anexemplary implementation;

FIG. 16 is a screenshot of a challenge templates user interface inaccordance with an exemplary embodiment;

FIG. 17 is a screenshot of a new challenge templates user interface inaccordance with an exemplary embodiment;

FIG. 18 is a screenshot of a new challenge user interface having entereddata in accordance with an exemplary embodiment;

FIG. 19 is a screenshot of a specific challenge in accordance with anexemplary embodiment.

DETAILED DESCRIPTION

Any of the above embodiments may be used alone or together with oneanother in any combination. The one or more implementations encompassedwithin this specification may also include embodiments that are onlypartially mentioned or alluded to or are not mentioned or alluded to atall in this brief summary or in the abstract. Although variousembodiments may have been motivated by various deficiencies with theprior art, which may be discussed or alluded to in one or more places inthe specification, the embodiments do not necessarily address any ofthese deficiencies. In other words, different embodiments may addressdifferent deficiencies that may be discussed in the specification. Someembodiments may only partially address some deficiencies or just onedeficiency that may be discussed in the specification, and someembodiments may not address any of these deficiencies.

General Overview

Systems and methods are provided for one or more user interfaces for anenterprise social network. As used herein, the term multi-tenantdatabase system refers to those systems in which various elements ofhardware and software of the database system may be shared by one ormore customers. For example, a given application server maysimultaneously process requests for a great number of customers, and agiven database table may store rows for a potentially much greaternumber of customers. As used herein, the term query plan refers to a setof steps used to access information in a database system.

Next, mechanisms and methods for providing one or more user interfacesfor an enterprise social network will be described with reference toexemplary embodiments. The one or more user interfaces can include, butis not limited to, an ongoing feedback user interface, an about me userinterface, a recognition user interface, a challenge user interface, anda my stats user interface. One or more of the user interfaces can applygame mechanics to an enterprise social network described herein whichcan provide for increased incentive behavior for users of the enterprisesocial network. A benefit of the ongoing feedback user interface is auser is able to receive ongoing feedback in a timely manner. A benefitof the about me user interface is a user can obtain accurate informationabout another user, such as technical ability. A benefit of therecognition user interface is a user can be recognized for an actionthat can be outside of the user's assigned work tasks. A benefit of thechallenge user interface is users can participate in a challenge andgenerate friendly competition amongst co-workers. A benefit of the mystats user interface is a user can review his or her performance.

The one or more user interfaces for the enterprise social networkdescribed herein can be provided to a user through a user device, whichcan include, but is not limited to a computer device, an electronictablet, a smart phone, portable computer, a mobile electronic device orother electronic devices. For example, one or more user interfaces forthe enterprise social network can be provided to the user via a website,a phone application, a web application, a browser application, a locallydownloaded software application, a software program stored on amachine-readable medium, or any application program downloadable anddisplayable on a user system.

The one or more user interfaces for the enterprise social network caninclude one or more applications or features which can include, but arenot limited to, ongoing feedback, about me, recognition, challenge, andmy stats, all of which are described herein. The ongoing feedbackapplication can provide a user interface for a user to receive ongoingfeedback associated with a user, send ongoing feedback about anotheruser, and share the user's ongoing feedback with other users of theenterprise social network. Ongoing feedback can refer to feedbackassociated with a user and is provided to the user in a timely manner,such as minutes, hours or within days, after the user performs one ormore tasks or actions. Thus, the user can review and/or comment on thefeedback on a recently completed task or action while the task or actionis still fresh in the user's mind as well as the user who provided thefeedback. The user can review the user's own ongoing feedback and/oranother user's “publically” available ongoing feedback. Publicallyavailable ongoing feedback is ongoing feedback that the user haspermitted to be viewed by other users of the enterprise social network.

The about me application can provide a user interface for a user toprovide information about the user to one or more users of theenterprise social network. The information can include a summary of theuser's work experience, future work experience, current work experience,past work experience, and the user's expertise. The user can providesome of the information, such as the summary of the user's workexperience and future work experience, and the other information, suchas current work experience, past work experience, and the user'sexpertise can be provided by one or more external programs. For example,for a programmer, the user's work expertise can be provided based on thesoftware modules the user accessed.

The recognition application can provide a user interface for a user toreview recognition awarded to the user from one or more other users ofthe enterprise social network as well as to award recognition to one ormore users of the enterprise social network. Recognition can be awardedfor one or more tasks or actions by a user, such as performing a task oraction that is outside of the user's normal job description. Arecognition leader board can display a ranking of users based on theamount of recognition that has been awarded to each ranked user.

The challenge application can provide a user interface for a user toreview and/or participate in one or more challenges. A challenge can berelated to one or more actions, such as participating in a charity raceor wagering when a sale can be completed. A user can be rewarded pointsin accordance with completing the challenge. A challenged leader boardcan be displayed ranking the users based on how many points each rankeduser received for completing one or more actions associated with one ormore challenges.

Referring to FIG. 1A, a block diagram screenshot of an ongoing feedbackuser interface for an enterprise social network in accordance withexemplary embodiment is illustrated. In one or more embodiments, theongoing feedback user interface 100 can include the same fields,different fields or additional fields. As shown, the ongoing feedbackuser interface 100 can allow a user to review ongoing feedbackassociated with the user. The ongoing feedback user interface 100 caninclude an application taskbar 102. The application taskbar 102 caninclude links to one or more applications for the enterprise socialnetwork. The links can include a home link 104, about me link 106,recognitions link 108, challenges link 110, and challenge templates link111. These links can provide access to each of the associatedapplications or features. In this exemplary embodiment, the home link104 can provide access to the ongoing feedback application. In one ormore embodiments, the home link 104 can be associated with a differentapplication and the feedback application can have a separate link, suchas a Feedback link (not shown). The application taskbar 102 can includea taskbar option (shown as a “+”) 112, which can allow the user tomodify the application taskbar 102, such as adding or deleting one ormore links, or designating a different application as the home link 104.

The ongoing feedback user interface 100 can display a user name field114, an image field 116 associated with user, a search link 117, and anactivity bar 118. The user name field 114 can display the name of theuser who is associated with the information being displayed. The imagefield 116 can include an image associated with the user. The image caninclude an electronic photo, avatar or any other visual image associatedwith the user. The search link 117 can allow the user to viewinformation associated with another user. For example, in response tothe search link 117 being selected, a popup window (not shown) can bedisplayed. The user can enter the name of another user to viewinformation associated with the entered name. Once entered, the ongoingfeedback associated with the entered user name can be displayed. In oneor more embodiments, as explained below, the ongoing feedback that theuser permitted to be shared with other users of the enterprise socialnetwork can be displayed. In one or more embodiments, the informationdisplayed can be for another application, such as the about meinformation associated with the entered user name. The ongoing feedbackuser interface 100 can include an activity bar 118 which can provideinformation regarding the availability of the user. The availability ofthe user can be obtained from a calendar associated with the user.

The ongoing feedback user interface 100 can include a personal links bar120 having one or more links, including but not limited to, about melink 122, my feedback link 124, my recognition link 126, my stats link128, and my challenge link 130 which are discussed in further detailbelow. Each of these links provides information associated with the userthat is displayed in the user name field 114.

The ongoing feedback user interface 100 can include a feedback section132. The feedback section 132 can include ongoing feedback associatedwith the user. The feedback section 132 can include one or more ongoingfeedback streams. An ongoing feedback stream can include the originalcomment and any reply comments. The feedback section 132 can include areceived link 134, sent link 136, and shared link 138. The received link134 can be the default link. When the received link 134 is designated,ongoing feedback streams directed to the user can be displayed. When thesent link 136 is designated, ongoing feedback streams that wereoriginated by the user and directed to another user can be displayed.When the shared link 138 is designated, ongoing feedback streams thatthe user permitted to be shared with other users of the enterprisesocial network can be displayed.

When the received link 134 is designated, one or more ongoing feedbackstreams can be displayed. The ongoing feedback stream can include animage field 140, a to/from field 142, an ongoing feedback field 144, atimestamp field 148, a Share link 150, and a Post to Chatter link 152.The image field 140 can include an image associated with the user whosent the ongoing feedback. The image can be an electronic photo, avataror any other visual image associated with the user. The to/from field142 can include the name of the user who received the ongoing feedbackand the name of the user who sent the ongoing feedback. The ongoingfeedback field 144 can include the ongoing feedback. The ongoingfeedback user interface 100 can include a “The Feedback is Helpful”link, which when selected, notifies the user who provided the ongoingfeedback with a message informing the user that the ongoing feedback washelpful to the receiving user. The message can be an email message, aposting on a social network such as Chatter®, or any other electronicmessaging system. The timestamp field 148 can be the time the ongoingfeedback stream was sent and can include the date and time. The sharelink 150 can allow the user to permit the sharing of the comment streamwith other users of the enterprise social network. A comment stream caninclude the initial ongoing feedback comment as well as any replycomments. The comment stream can include reply comments from othersusers, in the event the user who received the initial ongoing feedbackhas granted permission for others to review the comment stream. Forexample, if a user of the enterprise social network accesses the ongoingfeedback application, the user can review one or more ongoing feedbackstreams that another user has permitted to be shared. Once an ongoingfeedback stream is permitted to be shared, the entire ongoing feedbackstream can be reviewed. The post to Chatter field 152 can allow theongoing feedback comment to be posted to Chatter® or any otherdesignated social network.

The feedback section 132 can include a reply comment section 154. Thereply comment section 148 can include one or more reply comments in anongoing feedback stream. A reply comment can be a reply to feedback oranother reply comment. The reply comment section 154 can include a username field 156, an image field 158, a reply comment field 160, atimestamp field 162, a write a comment field 164, and a comment button166. The user name field 156 can include the name of the user sendingthe reply comment. The image field 158 can include an image associatedwith the user who sent the reply comment. The image can be an electronicphoto, avatar or any other visual image associated with the user. Thereply comment field 160 can include the reply comment. The timestampfield 162 can be the time the reply comment was sent and can include thedate and time. The write a comment field 164 can include an entry boxwhich allows the user to enter a reply comment. The comment button 166can be designated to send the reply comment to the user who sent theongoing feedback comment or who sent a reply comment.

The ongoing feedback user interface 100 can include a recent checkinssection 168 which lists one or more recent software modules 170 that theuser has checked in. The recent checkins section 168 can be populated byone or more software systems, external to the enterprise social network.The external software system can be GU-OS CRM sold by salesforce.com ofSan Francisco, Calif. In other embodiments, the external softwaresystems can include time entry software, document management systems, orany other external software system that similar information can beobtained. In one or more embodiments, the recent checkins section 168can list one or more projects 170 the user has recently worked on andcan be populated by other external software programs, such as a timeentry program.

The ongoing feedback user interface 100 can include a followers section172 which can include a list of one or more followers 174 of the user, ashow all button 176, and a number field 178. The list of followers 174can be limited to the number of followers that can fit in the followerssection 172. The list of followers 174 can include an image of eachfollower. The image can be an electronic photo, avatar or any othervisual image associated with the user. In one or more embodiments, aname field (not shown) can be displayed in which the name of the userassociated with the image is displayed. The show all button 176 canresult in images of all of the followers of the user being displayed.The number field 178 displays the number of followers that areassociated with the user.

Referring to FIG. 1B, a screenshot of an ongoing feedback user interfacefor an enterprise social network in accordance with exemplaryembodiments is illustrated. As shown, the user is Cheryl Porro 114 andshe has one comment stream. The ongoing feedback comment 144 is fromJeanette Zalder to Cheryl Porro 142. The ongoing feedback comment is “HiCheryl—great way to keep the Sprint reviews on track with the 1 hourtimeframe!” 144. The ongoing feedback comment was sent on “Apr. 14, 20117:55 PM” 148. Cheryl Porro sent a reply comment, “Thanks” 160. The replycomment 160 was sent on “Apr. 14, 2011 7:59 PM” 162. Cheryl Porro hasseven followers in the followers field 174. Cheryl Porro has five (5)modules listed in the recent checkins 168 section. Each of the listedmodules includes a timestamp showing when the modules were checked in.

Referring to FIG. 2A, a block diagram screenshot of an about me userinterface for an enterprise social network in accordance with exemplaryembodiment is illustrated. In one or more embodiments, the about me userinterface 200 can include the same fields, different fields oradditional fields as shown in FIG. 2A. The about me user interface 200can allow a first user to review information about the first user oranother user. To view the about me information associated with anotheruser, the user can select the search link 117, enter a user name in thepopup window (not shown) to search for ongoing feedback associated withthe entered user name. Once entered, the about me information associatedwith the entered user name can be displayed. As shown, the about me userinterface 200 can include an application taskbar 102, a user name field114, an image field 116, a search link 117, an activity bar 118, and apersonal links bar 120 which were described earlier.

The about me user interface 200 can include a summary field 202, futurefield 206, current field 210, and past field 212. The summary field 202can include a summary of the user's responsibilities. The future field206 can include one or more comments on the work the user would like towork on the future. The summary field 202 and future field 206 can beentered by the user and the user can use the edit button 204, 208 torevise the text as desired by the user. The current field 210 caninclude projects the user is currently working on an dcan include thepercentage of time the user works on each project. The current field 210can be populated by one or more software programs external to the aboutme application. The populated information can include, but is notlimited to, title, supervisor names, percentage of time worked on eachproject, last project worked on, and tasks for the day. The tasks forthe day can be obtained from an external calendar software program. Theexternal software system can be GU-OS CRM. In other embodiments, theexternal software systems can include time entry software, documentmanagement systems, or any other external software system that similarinformation can be obtained. The past field 212 can be populated by oneor more software programs external to the about me application. Theexternal software system can be GU-OS CRM. In other embodiments, theexternal software systems can include time entry software, documentmanagement systems, or any other external software system that similarinformation can be obtained.

The about me user interface 200 can include an areas of expertisesection 214 and a recent checkins section 168. The areas of expertisesection 214 can be populated by one or more external software programs.The external software system can be GU-OS CRM. In other embodiments, theexternal software systems can include time entry software, documentmanagement systems, or any other external software system that similarinformation can be obtained. The recent checkins section 168 can includea list of software projects that the user has recently checked into oneor more external software programs.

The information in the about me user interface 200 can assist anotheruser in determining the skill sets of the user. The summary field 202,future field 206, current field 210, past field 212, as well as theareas of expertise field 214 and recent checkins field 168 can providethe another user an understanding of the type of work, projects andexperience of the user to assist the another user in determining if theuser can assist on one or more projects. By having one or more fieldspopulated by the one or more external software programs, another usercan obtain a realistic appreciation of the skill sets of the usercompared to traditional methods for obtaining similar information abouta user. For example, traditional methods can include a webpageassociated with the user in which the user typically enters theinformation. As a result, the information can contain inaccuraciesand/or puffery information which can provide an inaccurate expectationof the skill sets of the user. The information obtained from traditionalmethods can also be outdated, thus another user may not be able toobtain a complete perception of the user's skill sets.

Referring to FIG. 2B, a screenshot of an about me user interface for anenterprise social network in accordance with exemplary embodiments isillustrated. As shown, Cheryl Porro 114 is a computer programmer. Hersummary recites, “My main responsibility is running the Platform QEteam. I also work on the Team Sunshine, OOM, ADM, and OAForce teams.”202. Her future summary recites, “I would like to spend more time infront of customers.” 206. Her current summary recites four entries. Thefirst entry is “Sr. Director, Quality Engineering to Rajani Ramanathan.”210. The second entry is “I tend to spend 20.0% of my time with teamWorkflow and Process Admin as a QA Manager 20% of my time with teamDeclarative App Builder as a QA Manager 15.0% of my time with teamGlobalization Manager 10% of my time with team Dimensions as a QAManager 5% of my time with team Process Engine as a QA Manager 0.0% ofmy time with team ADM 2.0 as a Other 10% of my time with team CustomSchema as a QA Manager 0.0% of my time with team Core Schema as a QAManager.” 210 The third entry is “My Last checkin was related to:Auto-assignments (Add back assignee for App Dist).” 210. The last entryis “Tasks on today's to do list include: ask Pos if they would beinterested in providing feedback, categorize and send to team forfeedback, get invite together and out.” 210. The about me user interface200 also lists two areas of expertise 214, Auto-Assignments and WorkflowApprovals 216. Under the recent checkins 168, Cheryl Porro has checkedin five software modules. The dates and time of the software modules andassociated information about the software module can be shown. Inreviewing the information on the About me user interface 200, anotheruser can obtain a better understanding for the skill sets of CherylPorro and can access the underlined items which can be links to allowthe another user to obtain more information about the projects. Forexample, a user can contact Rajani Ramanathan to obtain additionalinformation about Cheryl Porro.

Referring to FIG. 3A, a block diagram screenshot of a recognition userinterface for the enterprise social network in accordance with anexemplary embodiment is illustrated. In one or more embodiments, therecognition user interface 300 can include the same fields, differentfields or additional fields as shown in FIG. 3A. The recognition userinterface 300 can provide a user interface to allow a user to reviewrecognition associated with a user, the recognition leader board,comments associated with a user being recognized, and people who haverecognized the user. The user can use the recognition user interface 300to recognize users in the enterprise social network. Awardingrecognition or appreciation to other users in the enterprise socialnetwork can promote congeniality. For example, as shown in FIG. 3B,Herman Kwong was awarded recognition for the recognition user interfacewhich was outside of Herman Kwong responsibilities. In one or moreembodiments, a user can receive recognition for an action withinresponsibilities associated with the user, for an action outsideresponsibilities, or any combination thereof. As shown, the recognitionuser interface 300 can include an application taskbar 102, a user namefield 114, and an image field 116 which were described earlier.

The recognition user interface 300 can include a leader board section302 which displays an ordered list of users and the number ofrecognitions associated with each listed user. The ordered list can bedisplayed in descending order. For each listed user, an image field 304,user name field 306 and the number of recognitions 308 the user hasreceived can be displayed. In one or more embodiments, the list can be apartial list to fit in the page and can include functionality to reviewadditional partial lists. The recognition user interface 300 can includeinformation associated with a user on the leader board.

The information can include a ranking information section 310, arecognition section 316 and a comment section 322. The rankinginformation section 310 can include ranking information associated witha designated user. The ranking information section 310 can include animage field 304, user name field 306, number of recognitions field 310,and rank field 314. The image field 304 can include an image associatedwith a designated user from the leader board. The image can be anelectronic photo, avatar or any other visual image associated with theuser. The user name field 306 can include the name of the designateduser. The number of recognitions field 310 can include a recognitionnumber field 308 which lists the number of recognitions the user hasreceived. The rank field 314 can include a rank number field 312 whichlists the rank of the user. The recognition section 316 can allow theuser to recognize a designated user from the leader board. Therecognition section 316 can allow a user to enter text into an entryfield 318 and can use a recognize button 320 to recognize the designateduser. The comment section 322 can include one or more recognitioncomments associated with the designated user. The recognition userinterface 300 can include a “Find Me” link can be displayed and whenselected, the user becomes the designated user and recognitionassociated with the designated user can be displayed.

Each recognition comment can include an image field 326, a from/to field328, a recognition comment field 330 and a timestamp field 332. Theimage field 326 can include an image associated with the user who sentthe comment. The image can be an electronic photo, avatar or any othervisual image associated with the user. The from/to field 328 can includethe user name of the user who sent the recognition comment and the username of the user who received the recognition comment. The recognitioncomment field 330 can include the comment. The timestamp field 332 canbe the time the recognition comment was sent and can include the dateand time.

The recognition user interface 300 can include a recognition section 338which allows a user to recognize another user in the enterprise socialnetwork. The recognition section 338 can include a search for user field340, write recognition comment field 342, recognitions left field 344,and recognitions given today field 348. The search for user field 340allows a user to search for another user to recognize. The writerecognition comment field 342 allows a user to enter a commentassociated with the recognition. The recognitions left field 344 caninclude a recognitions left number field 346 which lists the number ofrecognitions the user has left to recognize other users. A user can begiven a set number of recognitions the user can give over a given timeperiod, such as a week, month, quarter, year, or any other period. Therecognitions given today field 348 can include recognitions given todaynumber field which lists the number of recognitions the user has giventoday. In one or more embodiments, the number of recognitions given canbe over a given time period, such as a day, week, month, quarter, year,or any other period. The recognition user interface 300 can include a“people who recognized me” section 352. The people who recognized mesection 352 can include a people who recognized me field 354 whichincludes a list of users who recognized the user over the given period.The people who recognized me field 354 can include an image of the user,the user name who recognized the user or any combination thereof.

Although recognition has been described as recognition, in one or moreembodiments, recognition awards may be in the form of points, othernumerical indicators (such as stars), icons, badges, ranks, or otherrecognition methodology that can recognize a user's contributions. Inaddition, information on why recognition was awarded can be collectedfor employee evaluation purposes. This information can be used inconjunction with other employee performance information to provide amore complete picture of the employee's contributions to the enterprise.In other words, a recognition award from an employee's peer can suggestthat the employee is working well with others, performing beyond peers'expectations, and adding value to the enterprise in ways that maytypically be missed by the employee's superiors. Recognition canencourage positive employee behaviors, improve overall employeeattitudes and motivations, and add a fun aspect to a workplace.

Referring to FIG. 3B, a screenshot of a recognition user interface foran enterprise social network in accordance with exemplary embodiments isillustrated. As shown, Cheryl Porro is the user 114, she has zerorecognitions 328 and is ranked sixth 334. She has four (4) 346recognitions left. Cheryl has not recognized anyone 350 for the givenperiod: today. Cheryl has yet to be recognized 354. The recognitionleader board 302 includes six users with the leader 304 being HermanKwong 306 with two (2) recognitions 308. Jenny Blackburn 306, JeanetteZalder 306, Joshua Newman 306, James Hatton 306, all being tied forsecond 304 with one (1) recognition 308 each. The recognition userinterface 300 includes the recognition for the designated user: HermanKwong 306. Herman has two (2) recognitions 308 and is ranked first 312.The latest recognition was from Thomas Dvornik who recognized HermanKwong 328. The latest recognition comment is “Nice work on therecognitions UI!” 330. The timestamp for the recognition timestamp is“04/14/2011 12:22 PM” 332. The earlier recognition was from James Hattonwho recognized Herman Kwong 328. The earlier recognition comment is “Andmy first recognition goes to Mr. Herman Kwong;)” 330. The timestamp forthe recognition timestamp is “01/13/2011 07:23 PM” 332.

Referring to FIG. 4A, a block diagram screenshot of a challengeapplication for the enterprise social network in accordance withexemplary embodiments is illustrated. In one or more embodiments, thechallenge user interface 400 can include the same fields, differentfields or additional fields. The challenge user interface 400 provides auser interface to allow a user to review a challenge, the user'schallenge status, a challenge leader board, and can write a commentabout a challenge. The challenge application can allow users to placefriendly wagers to promote congeniality. A challenge can be for actionsrelated to work, such as completing a sales job, or to actions outsideof work, such as participating in a charity race. As shown, thechallenge user interface 400 can include an application taskbar 102which was described earlier.

The challenge user interface 400 can include a back to challenge link402, a selected challenge section 404, a challenge comment section 442,a my stats section 456 and a challenge leader board section 470. Theback to challenge link 402, when designated, can cause the display of alist of challenge which are described later. The selected challengesection 404 can include a title of challenge field 406, record an actionlink 408, a challenge description field 410, a challenge start datefield 414, a challenge end date field 418, a challenge action field 422,a points per action field 426, and a participants in challenge field430. The title of challenge field 406 can include a title of achallenge. The record an action link 408 can allow a user to record anaction to earn points. The challenge start date field 414 can include adate for the start date of the challenge 416. The challenge end datefield 418 can include a date for the end date of the challenge 420. Thechallenge action field 422 can include an action for which points can beawarded 424. The points per action field 426 can include a points field428. The participants in challenge field 430 can include the number ofusers in the challenge 432.

The challenge comment section 442 can include a challenge comment field434 for entering a comment. Once a comment is entered into the challengecomment field 434 the comment can be shared with others by designating ashare button 636. The user can attach a file using a file button 438 andcan attach a link using a link button 440. The challenge comment section442 can include challenge comments with each challenge including a username field 444, an image field 446, a comment field 448, a timestampfield 450, a comment button 452 and a like button 454. The user namefield 444 can include the name of the user who commented on thechallenge. The image field 446 can include an image associated with theuser who sent the comment. The image can be an electronic photo, avataror any other visual image associated with the user. The timestamp field450 can be the time the comment was sent and can include the date andtime. The comment button 452 can allow a user to comment about a postedcomment when designated. The like button 454 can allow a user to providean indicator that the user liked a comment.

The my stats section 456 can include statistics for the user and caninclude a number of points field 458 which include the number of pointsthe user has earned 460, the number of actions field 462 which includesthe number of actions the user has completed 464, and leader boardposition field 466 includes the rank of the user 468.

The challenge leader board section 470 can include an ordered list ofusers and the number of points each user has earned for listed user. Theordered list can be displayed in descending order. For each listed user,a rank field 472, an image field 474, a user name field 476, a number ofpoints field 478 earned by the user can be displayed. The rank field 472can include the ranking of the user based on points earned. The imagefield 474 can include an image associated with the user who sent thecomment. The image can be an electronic photo, avatar or any othervisual image associated with the user. The user name field 476 caninclude the name of the user earned the points. The number of pointsfield 478 earned by the user can include the number of points earned bythe user. In one or more embodiments, the challenge leader board can bea partial list to fit in the page and can include functionality toreview additional partial lists.

Referring to FIG. 4B, a screenshot of a challenge user interface for anenterprise social network in accordance with exemplary embodiments isillustrated. As shown, the “Run in a Fun Race” can be the title 406 ofthe challenge. The description of the challenge can be “a 5 k charityrace” 412. The challenge start date can be “1/19/2011” 416 and can haveended “3.19.2011” 420. The action can be running in the race 424 and theuser can earn 10 points 428 by running in the race. There are ten (10)users running in the race 432. Cheryl Porro 444 sent a comment “I justearned 10 points for completing an activity in this challenge on4/13/2011!” 448. Cheryl Porro can have earned a total of thirty (30)points 460 for completing three (3) actions 464 and can be ranked second468. The leader board 470 can include ten (10) people with the leader474 being Lanini Arunacchalam 476 who has forty (40) points 478. JoshuaNewman 476 and Cheryl Porro 476 are tied for second 472 with thirty (30)points 478. Herman Kwong 476 is third 472 with twenty (20) points 478.Ron Hess 476 and Sahana Mysore 476 are tied for fourth 472 with ten (10)points 478. Dan McGrey 476, Jonathan Hersh 476, Brian Zotter 476, andPeter Wang 476 are tied for fifth 472 with no points 478.

Referring to FIG. 5A, a block diagram of the my stats user interface foran enterprise social network in accordance with an exemplary embodimentis illustrated. In one or more embodiments, the my stats user interface500 can include the same fields, different fields or additional fields.The my stats user interface 500 can provide a user interface to allow auser to review statistics associated with a user for a given period. Asshown, the my stats user interface 500 can include an applicationtaskbar 102, a user name field 114, an image field 116, and an activitybar 118 which were described earlier. The my Stat user interface 500 caninclude a title field 122 which includes the job title for the user. Themy Stat user interface 500 includes a date bar 405. The date bar 405 caninclude a from field 506, a to field 510, and a refresh button 514. Thefrom field 506 can include a from date field 508. The to field 510 caninclude a to date field 512. The refresh button 514 allows the user tochange the statistics based on the date in the from date field 508 andto date field 512. The my stats user interface 500 can include abugs/test failures fixed field 516, a cases fixed field 522, an averagedays for fixed bugs/test failures field 528, a bugs currently open field534, an average number of bugs/test failures per day field 540, andnumber of checkins field 546. These fields 516, 522, 528, 534, 540, 546can be populated by one or more software systems, external to theenterprise social network. The external software system can be GU-OS CRMsold by salesforce.com of San Francisco, Calif. In other embodiments,the external software systems can include time entry software, documentmanagement systems, or any other external software system that similarinformation can be obtained. The bugs/test failures fixed field 516 caninclude a number field 518 and a team percentage/organization percentagefield 520. The cases fixed field 522 can include a number field 524 anda team percentage/organization percentage field 526 can include a numberfield 524 and a team percentage/organization percentage field 520. Theaverage days for fixed bugs/test failures field 528 can include a numberfield 530 and a team percentage/organization percentage field 532. Thebugs currently open field 534 can include a number field 536 and a teampercentage/organization percentage field 538. The average number ofbugs/test failures per day field 540 can include a number field 542 anda team percentage/organization percentage field 544. The number ofcheckins field 546 can include a number field 548 and a teampercentage/organization percentage field 550.

Referring to FIG. 5B, a screenshot of a my stats user interface for anenterprise social network in accordance with exemplary embodiments isillustrated. As shown, the my stats user interface 500 can include thetitle, “Developer On Team GU-OS CRM” 122 for James Hatton 114. The fromdate is “2/26/2011” 508 and the to date is “4/27/2011” 512. Jamesstatistics are zero 518 bugs/test failures fixed 516, zero 524 casesfixed 522, zero 530 average days for fixed bugs/test failures 528, seven(7) 536 bugs currently open 534 with a one hundred percent (100%) arefor the team 538, the average number of bugs/test failures per day 540was one (1) 542 day, and zero 548 number of checkins 546.

Referring to FIG. 6A, a block diagram screenshot of a my challengeapplication for the enterprise social network in accordance withexemplary embodiments is illustrated. In one or more embodiments, the mychallenge user interface 600 can include the same fields, differentfields or additional fields. The my challenge user interface 600provides a user interface to allow a user to review challenge associatedwith the user, record an action, leave a challenge, and reviewparticulars associated with a challenge, including, but not limited to,challenge name, owner of the challenge, start date, end date, and whothe number of participants. As shown, the my challenge user interface600 can include an application taskbar 102 which was described earlier.

The my challenge user interface 600 can include a challenge taskbar 602,including, but not limited to, links for my challenge 604, challenge—own606, and all public challenge 608. The my challenge link 604, whenselected can cause the My challenge user interface 600 to be displayed.The challenge—own link 606, when selected can cause the challenge theuser initiated to be displayed. The all public challenge link 608, whenselected can cause all of challenge the user can join to be displayed.The my challenge user interface 600 can include the title, such as “MyChallenge” 612. The my challenge user interface 600 can include a newlink 614, when selected can allow a user to enter a new challenge whichis described below.

The my challenge user interface 600 can include a my challenge section610 which can include a list of one or more challenge the user is aparticipant in. The list can a view link 616, record an action link 618,leave a challenge link 620, challenge 622, owner 624, start date 626,end date 628, participants 630. The view link 616, when selected candisplay view the details of that challenge, for example as shown in FIG.19. The record an action link 618, when selected can allow the user toenter an action the user performed as shown in FIG. 6B. The leave achallenge link 620, when selected can allow the user to initiate arelated challenge The challenge field 622 can display the name of theassociated challenge the user is a participant in. The owner field 624can display the owner of the associated challenge, for example, whoinitiated the challenge. The start date field 626 can display thestarting date of the associated challenge. The end date field 628 candisplay the ending date of the associated challenge. The participantsfield 630 can display the number of participants in the associatedchallenge.

Referring to FIG. 6B, a screenshot of a my challenge user interface foran enterprise social network in accordance with an exemplary embodimentis illustrated. As shown, the my challenge user interface 600 includeten (10) challenge that the user is a participant in. The first listedchallenge is “Run in a Fun Race” 622, which was initiated by “RonHesser” 624. The listed challenge starts on Jan. 19, 2011 626 and endson Mar. 19, 2011 628. The listed challenge has ten (10) participants630. The last listed challenge is “Q1 Fish Catching Challenge” 622,which was initiated by “Cheryl Porro” 624. The listed challenge startedon Apr. 1, 2011 626 and ends on May 31, 2011. The listed challenge hasten (10) participants 630.

System Overview

Referring to FIG. 7A, a block diagram of an environment wherein anon-demand database service might be used in accordance with an exemplaryembodiment is illustrated. Environment 710 may include user systems 712,network 714, system 716, processor system 717, application platform 718,network interface 720, tenant data storage 722, system data storage 724,program code 726, and process space 728. In other embodiments,environment 710 may not have all of the components listed and/or mayhave other elements instead of, or in addition to, those listed above.

Environment 710 is an environment in which an on-demand database serviceexists. User system 712 may be any machine or system that is used by auser to access a database user system. For example, any of user systems712 can be a handheld computing device, a mobile phone, a laptopcomputer, a work station, and/or a network of computing devices. Asillustrated in FIG. 7 (and in more detail in FIG. 8) user systems 712might interact via a network 714 with an on-demand database service,which is system 716.

An on-demand database service, such as system 716, is a database systemthat is made available to outside users that do not need to necessarilybe concerned with building and/or maintaining the database system, butinstead may be available for their use when the users need the databasesystem (e.g., on the demand of the users). Some on-demand databaseservices may store information from one or more tenants stored intotables of a common database image to form a multi-tenant database system(MTS). Accordingly, “on-demand database service 716” and “system 716”will be used interchangeably herein. A database image may include one ormore database objects. A relational database management system (RDMS) orthe equivalent may execute storage and retrieval of information againstthe database object(s). Application platform 718 may be a framework thatallows the applications of system 716 to run, such as the hardwareand/or software, e.g., the operating system. In an embodiment, on-demanddatabase service 716 may include an application platform 718 thatenables creation, managing and executing one or more applicationsdeveloped by the provider of the on-demand database service, usersaccessing the on-demand database service via user systems 712, or thirdparty application developers accessing the on-demand database servicevia user systems 712.

The users of user systems 712 may differ in their respective capacities,and the capacity of a particular user system 712 might be entirelydetermined by permissions (permission levels) for the current user. Forexample, where a salesperson is using a particular user system 712 tointeract with system 716, that user system has the capacities allottedto that salesperson. However, while an administrator is using that usersystem to interact with system 716, that user system has the capacitiesallotted to that administrator. In systems with a hierarchical rolemodel, users at one permission level may have access to applications,data, and database information accessible by a lower permission leveluser, but may not have access to certain applications, databaseinformation, and data accessible by a user at a higher permission level.Thus, different users will have different capabilities with regard toaccessing and modifying application and database information, dependingon a user's security or permission level.

Network 714 is any network or combination of networks of devices thatcommunicate with one another. For example, network 714 can be any one orany combination of a LAN (local area network), WAN (wide area network),telephone network, wireless network, point-to-point network, starnetwork, token ring network, hub network, or other appropriateconfiguration. As the most common type of computer network in currentuse is a TCP/IP (Transfer Control Protocol and Internet Protocol)network, such as the global internetwork of networks often referred toas the “Internet” with a capital “I,” that network will be used in manyof the examples herein. However, it should be understood that thenetworks that the one or more implementations might use are not solimited, although TCP/IP is a frequently implemented protocol.

User systems 712 might communicate with system 716 using TCP/IP and, ata higher network level, use other common Internet protocols tocommunicate, such as HTTP, FTP, AFS, WAP, etc. In an example where HTTPis used, user system 712 might include an HTTP client commonly referredto as a “browser” for sending and receiving HTTP messages to and from anHTTP server at system 716. Such an HTTP server might be implemented asthe sole network interface between system 716 and network 714, but othertechniques might be used as well or instead. In some implementations,the interface between system 716 and network 714 includes load sharingfunctionality, such as round-robin HTTP request distributors to balanceloads and distribute incoming HTTP requests evenly over a plurality ofservers. At least as for the users that are accessing that server, eachof the plurality of servers has access to the MTS' data; however, otheralternative configurations may be used instead.

In one embodiment, system 716, shown in FIG. 7, implements a web-basedcustomer relationship management (CRM) system. For example, in oneembodiment, system 716 includes application servers configured toimplement and execute CRM software applications as well as providerelated data, code, forms, webpages and other information to and fromuser systems 612 and to store to, and retrieve from, a database systemrelated data, objects, and Webpage content. With a multi-tenant system,data for multiple tenants may be stored in the same physical databaseobject, however, tenant data typically is arranged so that data of onetenant is kept logically separate from that of other tenants so that onetenant does not have access to another tenant's data, unless such datais expressly shared. In certain embodiments, system 716 implementsapplications other than, or in addition to, a CRM application. Forexample, system 16 may provide tenant access to multiple hosted(standard and custom) applications, including a CRM application. User(or third party developer) applications, which may or may not includeCRM, may be supported by the application platform 718, which managescreation, storage of the applications into one or more database objectsand executing of the applications in a virtual machine in the processspace of the system 716.

One arrangement for elements of system 716 is shown in FIG. 7, includinga network interface 720, application platform 718, tenant data storage722 for tenant data 723, system data storage 724 for system data 725accessible to system 716 and possibly multiple tenants, program code 726for implementing various functions of system 716, and a process space728 for executing MTS system processes and tenant-specific processes,such as running applications as part of an application hosting service.Additional processes that may execute on system 716 include databaseindexing processes.

Several elements in the system shown in FIG. 7 include conventional,well-known elements that are explained only briefly here. For example,each user system 612 could include a desktop personal computer,workstation, laptop, PDA, cell phone, or any wireless access protocol(WAP) enabled device or any other computing device capable ofinterfacing directly or indirectly to the Internet or other networkconnection. User system 712 typically runs an HTTP client, e.g., abrowsing program, such as Microsoft's Internet Explorer browser,Netscape's Navigator browser, Opera's browser, or a WAP-enabled browserin the case of a cell phone, PDA or other wireless device, or the like,allowing a user (e.g., subscriber of the multi-tenant database system)of user system 712 to access, process and view information, pages andapplications available to it from system 716 over network 714. Each usersystem 712 also typically includes one or more user interface devices,such as a keyboard, a mouse, trackball, touch pad, touch screen, pen orthe like, for interacting with a graphical user interface (GUI) providedby the browser on a display (e.g., a monitor screen, LCD display, etc.)in conjunction with pages, forms, applications and other informationprovided by system 616 or other systems or servers. For example, theuser interface device can be used to access data and applications hostedby system 716, and to perform searches on stored data, and otherwiseallow a user to interact with various GUI pages that may be presented toa user. As discussed above, embodiments are suitable for use with theInternet, which refers to a specific global internetwork of networks.However, it should be understood that other networks can be used insteadof the Internet, such as an intranet, an extranet, a virtual privatenetwork (VPN), a non-TCP/IP based network, any LAN or WAN or the like.

According to one embodiment, each user system 712 and all of itscomponents are operator configurable using applications, such as abrowser, including computer code run using a central processing unitsuch as an Intel Pentium® processor or the like. Similarly, system 716(and additional instances of an MTS, where more than one is present) andall of their components might be operator configurable usingapplication(s) including computer code to run using a central processingunit such as processor system 717, which may include an Intel Pentium®processor or the like, and/or multiple processor units. A computerprogram product embodiment includes a machine-readable storage medium(media) having instructions stored thereon/in which can be used toprogram a computer to perform any of the processes of the embodimentsdescribed herein. Computer code for operating and configuring system 16to intercommunicate and to process webpages, applications and other dataand media content as described herein are preferably downloaded andstored on a hard disk, but the entire program code, or portions thereof,may also be stored in any other volatile or non-volatile memory mediumor device as is well known, such as a ROM or RAM, or provided on anymedia capable of storing program code, such as any type of rotatingmedia including floppy disks, optical discs, digital versatile disk(DVD), compact disk (CD), microdrive, and magneto-optical disks, andmagnetic or optical cards, nanosystems (including molecular memory ICs),or any type of media or device suitable for storing instructions and/ordata. Additionally, the entire program code, or portions thereof, may betransmitted and downloaded from a software source over a transmissionmedium, e.g., over the Internet, or from another server, as is wellknown, or transmitted over any other conventional network connection asis well known (e.g., extranet, VPN, LAN, etc.) using any communicationmedium and protocols (e.g., TCP/IP, HTTP, HTTPS, Ethernet, etc.) as arewell known. It will also be appreciated that computer code forimplementing embodiments can be implemented in any programming languagethat can be executed on a client system and/or server or server systemsuch as, for example, C, C++, HTML, any other markup language, Java™,JavaScript, ActiveX, any other scripting language, such as VBScript, andmany other programming languages as are well known may be used. (Java™is a trademark of Sun Microsystems, Inc.).

According to one embodiment, each system 716 is configured to providewebpages, forms, applications, data and media content to user (client)systems 712 to support the access by user systems 712 as tenants ofsystem 716. As such, system 716 provides security mechanisms to keepeach tenant's data separate unless the data is shared. If more than oneMTS is used, they may be located in close proximity to one another(e.g., in a server farm located in a single building or campus), or theymay be distributed at locations remote from one another (e.g., one ormore servers located in city A and one or more servers located in cityB). As used herein, each MTS could include one or more logically and/orphysically connected servers distributed locally or across one or moregeographic locations. Additionally, the term “server” is meant toinclude a computer system, including processing hardware and processspace(s), and an associated storage system and database application(e.g., OODBMS or RDBMS) as is well known in the art. It should also beunderstood that “server system” and “server” are often usedinterchangeably herein. Similarly, the database object described hereincan be implemented as single databases, a distributed database, acollection of distributed databases, a database with redundant online oroffline backups or other redundancies, etc., and might include adistributed database or storage network and associated processingintelligence.

Referring to FIG. 8, a more detailed block diagram of an environmentwherein an on-demand database service might be used in accordance withan exemplary embodiment is illustrated. As shown, the user system 712may include processor system 712A, memory system 712B, input system712C, and output system 712D. FIG. 8 shows the network 714 and system716. FIG. 8 also shows that system 716 may include tenant data storage722, tenant data 723, system data storage 724, system data 725, UserInterface (UI) 830, Application Program Interface (API) 832, PL/SOQL834, save routines 836, application setup mechanism 838, applicationsservers 1000 ₁-1000 _(N), system process space 802, tenant processspaces 804, tenant management process space 810, tenant storage area812, user storage 814, and application metadata 816. In otherembodiments, environment 710 may not have the same elements as thoselisted above and/or may have other elements instead of, or in additionto, those listed above.

User system 712, network 714, system 716, tenant data storage 722, andsystem data storage 724 were discussed above in FIG. 7. Regarding usersystem 712, processor system 712A may be any combination of one or moreprocessors. Memory system 712B may be any combination of one or morememory devices, short term, and/or long term memory. Input system 712Cmay be any combination of input devices, such as one or more keyboards,mice, trackballs, scanners, cameras, and/or interfaces to networks.Output system 712D may be any combination of output devices, such as oneor more monitors, printers, and/or interfaces to networks. As shown byFIG. 7, system 716 may include a network interface 720 (of FIG. 7)implemented as a set of HTTP application servers 800, an applicationplatform 718, tenant data storage 722, and system data storage 724. Alsoshown is system process space 802, including individual tenant processspaces 804 and a tenant management process space 810. Each applicationserver 1000 may be configured to tenant data storage 722 and the tenantdata 723 therein, and system data storage 724 and the system data 725therein to serve requests of user systems 712. The tenant data 823 mightbe divided into individual tenant storage areas 812, which can be eithera physical arrangement and/or a logical arrangement of data. Within eachtenant storage area 812, user storage 814 and application metadata 816might be similarly allocated for each user. For example, a copy of auser's most recently used (MRU) items might be stored to user storage814. Similarly, a copy of MRU items for an entire organization that is atenant might be stored to tenant storage area 812. A UI 830 provides auser interface and an API 832 provides an application programmerinterface to system 716 resident processes to users and/or developers atuser systems 712. The tenant data and the system data may be stored invarious databases, such as one or more Oracle™ databases.

Application platform 718 includes an application setup mechanism 838that supports application developers' creation and management ofapplications, which may be saved as metadata into tenant data storage722 by save routines 836 for execution by subscribers as one or moretenant process spaces 804 managed by tenant management process 810 forexample. Invocations to such applications may be coded using PL/SOQL 834that provides a programming language style interface extension to API832. A detailed description of some PL/SOQL language embodiments isdiscussed in commonly owned U.S. Pat. No. 7,730,478 entitled, METHOD ANDSYSTEM FOR ALLOWING ACCESS TO DEVELOPED APPLICATIONS VIA A MULTI-TENANTON-DEMAND DATABASE SERVICE, by Craig Weissman, filed Sep. 21, 2007,which is incorporated in its entirety herein for all purposes.Invocations to applications may be detected by one or more systemprocesses, which manage retrieving application metadata 816 for thesubscriber making the invocation and executing the metadata as anapplication in a virtual machine.

Each application server 700 may be communicably coupled to databasesystems, e.g., having access to system data 725 and tenant data 723, viaa different network connection. For example, one application server 800₁ might be coupled via the network 614 (e.g., the Internet), anotherapplication server 800 _(N-1) might be coupled via a direct networklink, and another application server 800 _(N) might be coupled by yet adifferent network connection. Transfer Control Protocol and InternetProtocol (TCP/IP) are typical protocols for communicating betweenapplication servers 800 and the database system. However, it will beapparent to one skilled in the art that other transport protocols may beused to optimize the system depending on the network interconnect used.

In certain embodiments, each application server 800 is configured tohandle requests for any user associated with any organization that is atenant. Because it is desirable to be able to add and remove applicationservers from the server pool at any time for any reason, there ispreferably no server affinity for a user and/or organization to aspecific application server 800. In one embodiment, therefore, aninterface system implementing a load balancing function (e.g., an F5Big-IP load balancer) is communicably coupled between the applicationservers 800 and the user systems 712 to distribute requests to theapplication servers 800. In one embodiment, the load balancer uses aleast connections algorithm to route user requests to the applicationservers 700. Other examples of load balancing algorithms, such as roundrobin and observed response time, also can be used. For example, incertain embodiments, three consecutive requests from the same user couldhit three different application servers 800, and three requests fromdifferent users could hit the same application server 800. In thismanner, system 716 is multi-tenant, wherein system 716 handles storageof, and access to, different objects, data and applications acrossdisparate users and organizations.

As an example of storage, one tenant might be a company that employs asales force where each salesperson uses system 716 to manage their salesprocess. Thus, a user might maintain contact data, leads data, customerfollow-up data, performance data, goals and progress data, etc., allapplicable to that user's personal sales process (e.g., in tenant datastorage 722). In an example of a MTS arrangement, since all of the dataand the applications to access, view, modify, report, transmit,calculate, etc., can be maintained and accessed by a user system havingnothing more than network access, the user can manage his or her salesefforts and cycles from any of many different user systems. For example,if a salesperson is visiting a customer and the customer has Internetaccess in their lobby, the salesperson can obtain critical updates as tothat customer while waiting for the customer to arrive in the lobby.

While each user's data might be separate from other users' dataregardless of the employers of each user, some data might beorganization-wide data shared or accessible by a plurality of users orall of the users for a given organization that is a tenant. Thus, theremight be some data structures managed by system 716 that are allocatedat the tenant level while other data structures might be managed at theuser level. Because an MTS might support multiple tenants includingpossible competitors, the MTS should have security protocols that keepdata, applications, and application use separate. Also, because manytenants may opt for access to an MTS rather than maintain their ownsystem, redundancy, up-time, and backup are additional functions thatmay be implemented in the MTS. In addition to user-specific data andtenant specific data, system 716 might also maintain system level datausable by multiple tenants or other data. Such system level data mightinclude industry reports, news, postings, and the like that are sharableamong tenants.

In certain embodiments, user systems 712 (which may be client systems)communicate with application servers 800 to request and updatesystem-level and tenant-level data from system 716 that may requiresending one or more queries to tenant data storage 722 and/or systemdata storage 724. System 716 (e.g., an application server 800 in system716) automatically generates one or more SQL statements (e.g., one ormore SQL queries) that are designed to access the desired information.System data storage 624 may generate query plans to access the requesteddata from the database.

Each database can generally be viewed as a collection of objects, suchas a set of logical tables, containing data fitted into predefinedcategories. A “table” is one representation of a data object, and may beused herein to simplify the conceptual description of objects and customobjects. It should be understood that “table” and “object” may be usedinterchangeably herein. Each table generally contains one or more datacategories logically arranged as columns or fields in a viewable schema.Each row or record of a table contains an instance of data for eachcategory defined by the fields. For example, a CRM database may includea table that describes a customer with fields for basic contactinformation such as name, address, phone number, fax number, etc.Another table might describe a purchase order, including fields forinformation such as customer, product, sale price, date, etc. In somemulti-tenant database systems, standard entity tables might be providedfor use by all tenants. For CRM database applications, such standardentities might include tables for Account, Contact, Lead, andOpportunity data, each containing pre-defined fields. It should beunderstood that the word “entity” may also be used interchangeablyherein with “object” and “table”.

In some multi-tenant database systems, tenants may be allowed to createand store custom objects, or they may be allowed to customize standardentities or objects, for example by creating custom fields for standardobjects, including custom index fields. U.S. patent application Ser. No.10/817,161, filed Apr. 2, 2004, entitled “Custom Entities and Fields ina Multi-Tenant Database System”, and which is hereby incorporated hereinby reference, teaches systems and methods for creating custom objects aswell as customizing standard objects in a multi-tenant database system.In certain embodiments, for example, all custom entity data rows arestored in a single multi-tenant physical table, which may containmultiple logical tables per organization. It is transparent to customersthat their multiple “tables” are in fact stored in one large table orthat their data may be stored in the same table as the data of othercustomers.

Ongoing Feedback

Referring to FIG. 9, a flowchart for a method for providing ongoingfeedback to a user of an enterprise social network in accordance with anexemplary implementation is illustrated. The exemplary method 900 isprovided by way of example, as there are a variety of ways to carry outthe method. The method 900 described below can be carried out using theuser systems and communication network shown in FIGS. 7 and 8 by way ofexample, and various elements of these figures are referenced inexplaining exemplary method 900. Each block shown in FIGS. 9 representsone or more processes, methods or subroutines, carried out in exemplarymethod 900. The exemplary method 900 may begin at block 902.

At block 902, ongoing feedback and name of a second user can bereceived. For example, in response to a first user entering ongoingfeedback for a second user, the processor system 717 can receive theongoing feedback and name of the second user from a user system 712associated with the first user. To enter the ongoing feedback, the firstuser can select the search link 117 and enter the name of the seconduser in a user interface, such as the ongoing feedback user interface100 or the about me user interface 200. The defaulted user interface forthe second user can be displayed on the user system 712 associated withthe first user. For example, as shown in FIG. 1C, the first user canenter ongoing feedback in the ongoing feedback field 180 of the about meuser interface 200 and can submit the ongoing feedback by selecting thegive feedback link 182. Similarly, the ongoing feedback field 180 canpop up in the ongoing feedback user interface 100 and the first user canenter and submit the ongoing feedback. In response to the submission,the ongoing feedback can be transmitted from the user system 712associated with the first user to the processor system 717. Afterreceiving the ongoing feedback and name of the second user, the method900 can proceed to block 904.

At block 904, the ongoing feedback can be stored. For example, inresponse to receiving the ongoing feedback and name of the second user,the processor system 717 can store the ongoing feedback in one or moredatabases 822. The stored ongoing feedback can be associated with thesecond user. After storing the ongoing feedback, the method 900 canproceed to block 906.

At block 906, the second user can be notified of the ongoing feedback.For example, the processor system 717 can transmit an email notificationto the second user, can post notification of the ongoing feedback onChatter® or another social network, and/or display the ongoing feedbackon the ongoing feedback user interface 100 of the second user. Thenotification can include the name of the first user, the name of thesecond user, the ongoing feedback, a timestamp for the ongoing feedback,and a link to access the ongoing feedback user interface 100 for thesecond user. An example of a posting of the ongoing feedback is shown inFIG. 1B, such as “Jeanette Zalder to Cheryl Porro: Hi Cheryl—great wayto keep the Sprint reviews on track with the 1 hour timeframe!” 144.After notifying the second user of the ongoing feedback, the method 900can proceed to block 908.

At block 908, a response from the second user can be received. Forexample, in response to the notification, the processor system 717 canreceive a response from the user system 712 associated with the seconduser. To enter the response, the second user can use the ongoingfeedback user interface 100 shown in FIG. 1B to transmit a helpfulnotification to the first user, provide permission to share the ongoingfeedback, or provide a reply comment to the first user. To transmit ahelpful notification to the first user, the second user can select the“This Feedback is helpful!” link 146. To share the ongoing feedback, thesecond user can select the Share link 150. To provide a reply comment tothe first user, the second user can enter a reply comment in the write acomment field 164 and select the submit comment link 166. An example ofa reply comment is shown in FIG. 1B, such as Cheryl Porro Thanks!” 160.After receiving the response, the method 900 can proceed to block 910.

A block 910, the type of response from the second user can bedetermined. For example, the processor system 717 can determine the typeof response received from the user system 712 associated with the seconduser. After the determination of the type of response, the method 900can proceed to block 912 if the response was a helpful notification, canproceed to block 914 if the response was to share the ongoing feedbackor can proceed to block 916 if the response is a reply comment.

At block 912, a helpful notification can be transmitted to the firstuser. For example, the processor system 717 can transmit an emailnotification to the second user, can post a helpful notification onChatter® or another social network, and/or display the helpfulnotification on the ongoing feedback user interface 100 of the firstuser. The notification can include a message, such as “This Feedback ishelpful!” After notifying the first user that the ongoing feedback washelpful, the method 900 can proceed to block 908 (not shown) whereanother response can be received from the second user or to block 920.

At block 914, permission to share the ongoing feedback can be stored.For example, the processor system 717 can store permission to share theongoing feedback in one or more databases 822. The processor system 717can set a permission parameter associated with the ongoing feedback. Inone or more embodiments, once permission is granted, other users arepermitted to review the ongoing feedback along with any other commentsand/or replies. In one or more embodiments, the permission parameter canbe to share with only the supervisor of the second user or with allusers of the enterprise social network. After storing the permission,the method 900 can proceed to block 908 (not shown) where anotherresponse can be received from the second user or to block 920.

At block 916, a reply comment can be stored. For example, the processorsystem 717 can store the reply comment in one or more databases 822. Thereply comment can be associated with the original ongoing feedbackcomment. After storing the reply comment, the method 900 can proceed toblock 918.

At block 918, the reply comment can be transmitted to the first user.For example, the processor system 717 can transmit an email notificationto the first user, can post notification of the ongoing feedback onChatter® or another social network, and/or display the ongoing feedbackon the ongoing feedback user interface 100 of the first user. Thenotification can include the name of the second user, the reply comment,a timestamp for the reply comment, and a link to access the ongoingfeedback user interface 100 for the first user. An example of a postingof the reply comment is shown in FIG. 1B, such as “Cheryl Porro Thanks!”After providing the reply comment to the first user, the method 900 canproceed to block 908 (not shown) where another response can be receivedfrom the second user or to block 920.

At block 920, a request to review ongoing feedback for the second usercan be received. For example, the processor system 717 can receive therequest to review the ongoing feedback for the second user. The requestcan be from another user of the enterprise social network. Afterreceiving the request, the method 900 can proceed to block 922.

At block 922, a determination of whether the second user has grantedpermission for any ongoing feedback streams is determined. For example,the processor system 717 can access permission parameters associatedwith each ongoing feedback stream associated with the second user anddetermines if the second user has granted permission to allow others toreview each ongoing feedback stream. An ongoing feedback stream caninclude the original ongoing feedback, any other related comments andreply comments. In the event that there is no permission granted for anyongoing feedback streams, the method 900 can proceed to block 924 wherethe user is notified that there is no available ongoing feedback. Forexample, the processor system 717 can send a notification message to theuser system 712 associated with the user informing the user that thereis no available ongoing feedback associated with the second user. In theevent permission has been granted to allow others to review one or moreongoing feedback streams, the method 900 can proceed to block 926.

At block 926, ongoing feedback streams that are permitted to be sharedare transmitted. For example, the processor system 717 provides one ormore ongoing feedback streams to the user system 712 associated with theuser who requested to review the ongoing feedback associated with thesecond user. The ongoing feedback streams can be ordered with the mostrecent on top. The ongoing feedback streams can be a fixed amount or fora given time. After transmitting the ongoing feedback streams, themethod 900 can proceed to block 926.

At block 926, the ongoing feedback streams can be displayed. Forexample, the user system 712 can display the ongoing feedback streams inthe ongoing feedback user interface on the user system. The ongoingfeedback streams can be displayed with the most recent ongoing feedbackstream at the top of the list. The display can include one or morenavigation tools to navigate through the ongoing feedback streams.

About Me

Referring to FIG. 10, a flowchart for a method for reviewing about meinformation related to a user of an enterprise social network inaccordance with an exemplary implementation is illustrated. Theexemplary method 1000 is provided by way of example, as there are avariety of ways to carry out the method. The method 1000 described belowcan be carried out using the user systems and communication networkshown in FIGS. 7 and 8 by way of example, and various elements of thesefigures are referenced in explaining exemplary method 1000. Each blockshown in FIGS. 10 represents one or more processes, methods orsubroutines, carried out in exemplary method 1000. The exemplary method1000 may begin at block 1002.

At block 1002, a request to access the about me user interface for auser of the enterprise social network can be received. For example, thefirst user can select the about me link 124 from a user interfacedisplayed on a user system 712, such as the home page as shown in FIG.1A. The user system 712 can send the request to the processor system717. The request can be for the about me user interface 100 associatedfor the first user to review his or her own about me information or fromthe first user to review the about me information for a second user. Toreview the about me information about the second user, the first usercan select the search link 117 on the about me user interface 200 andenter the name of the second user as shown in FIG. 2B. The request caninclude the name of a designated user, such as the name of the userrequesting the about me information or the name of another user of theenterprise social network. After receiving the request to access theabout me user interface 100 for a user, the method 1000 can proceed toblock 1004.

At block 1004, information to populate the fields of the about me userinterface can be obtained. For example, in response to receiving therequest the processor system 717 can access a profile associated withthe designated user from one or more databases associated with theenterprise social network to obtain information associated with thefirst user. The information can include summary information and futureinformation that the designated user previously entered and saved intothe profile associated with the designated user. As shown in FIG. 2B,the designated user can edit this information. For example, thedesignated user can select the edit link 204, 208 and can edit theinformation. The edited information can be saved when the designateduser hits an “enter” key. The information can include informationobtained from one or more external software systems, such as GU-OS CRM.The information can include a list of one or more projects the firstuser is currently working on, a list of one or more past projects thefirst user worked on, a list of one or more areas of expertise of thefirst user, and a list of one or more software modules the first userrecently checked in. The external software systems can a time entrysystem, a document management system that includes types of documents, abackend system, or any other external software system that can providecurrent projects the first user is working on, past projects the firstuser worked on, areas of expertise for the first user, and files ordocuments the first user recently saved. After populating the fields ofthe about me user interface 200, the method 1000 can proceed to block1006.

At block 1006, the about me user interface and associated informationcan be transmitted for display. For example, the processor system 717can transmit the about me user interface 200 and associated informationto the user system 712 associated with the first user. For example, theuser system 712 can receive the information and display the about meuser interface 200 and associated information as shown in FIG. 2B.

Recognition

Referring to FIG. 11, a flowchart for a method for awarding recognitionto a user of an enterprise social network in accordance with anexemplary implementation is illustrated. The exemplary method 1100 isprovided by way of example, as there are a variety of ways to carry outthe method. The method 1100 described below can be carried out using theuser systems and communication network shown in FIGS. 7 and 8 by way ofexample, and various elements of these figures are referenced inexplaining exemplary method 1100. Each block shown in FIG. 11 representsone or more processes, methods or subroutines, carried out in exemplarymethod 400. The exemplary method 1100 may begin at block 1102.

At block 1102, a request to award recognition to a second user of theenterprise social network can be received. For example, a first user canaccess the recognition user interface 300 of the enterprise socialnetwork. To access the recognition user interface 300, the first usercan select the recognition link 108 from a user interface displayed on auser system 712, such as the home page as shown in FIG. 1B. Afteraccessing the recognition user interface 300, the first user can searchfor the second user by entering the name of the second user in thesearch for user field 340 as shown in FIG. 3B. After obtaining the nameof the second user, the first user can enter the recognition comment inthe write recognition comment field 342. The recognition can besubmitted via a return key. In one or more embodiments, a recognize link(not shown), or any other known means to submit data via a userinterface. The recognition can be for an action by the second user thatis within the assigned responsibilities of the second user and/or for anaction by the second user that is outside of assigned responsibilitiesof the second user. After the request is received, the method 1100 canproceed to block 1104.

At block 1104, one or profiles associated can be accessed. For example,the processor system 717 can access one or more databases 822 to obtaina profile associated with the first user and a profile associated withthe second user. After accessing the profile associated with the firstuser, the method 1100 can proceed to block 1106.

At block 1106, a determination can be made whether the first user canrecognize another user. For example, the processor system 717 can reviewa recognition parameter stored in the user profile associated with thefirst user to determine if the first user has exceeded a recognitionlimit. If the recognition is points based, a determination can be madeto determine if the first user has enough points to award the seconduser. If the recognition is not points based, a determination can bemade to determine if the first user has recognitions to award. In theevent, the first user cannot recognize another user, the method 1100 canproceed to block 1108 in which the system processor 717 can transmit amessage to the user system 712 associated with the first user informingthe first user that the user has exceeded the recognition limit. In theevent the first user can recognize the second user, the method 1100 canproceed to block 1110.

At block 1110, one or more parameters can be updated. For example, theprocessor system 717 can update the recognition parameter associatedwith the profile of the first user. Updating can include decreasing therecognition by one (1). In the event the recognition is points based,the recognition parameter can be decreased by the amount of points thatthe first user awarded the second user. For example, the processorsystem 717 can update the total recognition parameter associated withthe profile of the second user. Updating the total recognition parametercan include increasing the total recognition parameter by one (1). Inthe event the recognition award is points based, the first user wouldenter a point value for the recognition award in the recognition userinterface 300 (not shown) and the total recognition parameter would beincremented by the entered point value. After updating the one or moreparameters, the method 1100 can proceed to block 1112.

At block 1112, the one or more parameters can be saved. For example, theprocessor system 717 can save the updated recognition parameterassociated with the first user and/or save the updated total recognitionparameter in the profile associated with the second user. The updatedprofiles can be saved in the one or more databases associated with theenterprise social network. After saving the updated total recognitionparameter, the method 1100 can proceed to block 1114.

At block 1114, a notification message can be provided to the seconduser. For example, the processor system 717 can transmit an emailnotification to the second user, can post notification of therecognition on Chatter® or another social network, and/or display therecognition on the recognition user interface 300 of the second user.The notification can include the name of the first user, the name of thesecond user, the entered comment, a timestamp for the recognition, and alink to access the recognition user interface 300 for the second user.An example of a posting of the recognition is shown in FIG. 3B, such as“Thomas Dvornik recognized Herman Kwong: Nice work on the recognitionsUI!” The notification can include an image associated with the firstuser and/or an image associated with the second user.

Recognition Leader Board

Referring to FIG. 12, a flowchart for a method for displaying arecognition leader board for an enterprise social network in accordancewith an exemplary implementation is illustrated. The exemplary method1200 is provided by way of example, as there are a variety of ways tocarry out the method. The method 1200 described below can be carried outusing the user systems and communication network shown in FIGS. 7 and 8by way of example, and various elements of these figures are referencedin explaining exemplary method 1200. Each block shown in FIG. 12represents one or more processes, methods or subroutines, carried out inexemplary method 400. The exemplary method 1200 may begin at block 1202.

At block 1202, a request to review a recognition leader board can bereceived. For example, the first user can select the recognition link108 from a user interface displayed on a user system 712, such as thehome page as shown in FIG. 1B. In response to the access, a user system712 can transmit a request to review the recognition leader board can betransmitted and received by the processor system 717. After the requestto review a recognition leader board is received, the method 1200 canproceed to block 1204.

At block 1204, recognition leader board information can be obtained. Forexample, the processor system 717 can access one or more databases 822associated with the enterprise social network to obtain recognitionleader board information associated with the users of the enterprisesocial network. The recognition leader board information can be obtainedfrom one or more files associated with recognition user interface 300 orcan be generated by querying one or more files associated with the usersof the enterprise social enterprise. The recognition leader boardinformation can be transmitted to the user system associated with thefirst user. The recognition leader board information can include a listof the leaders in descending order with an amount of recognition eachuser has been awarded and an image of each user. For example, theprocessor system 717 of the enterprise social network can transmit therecognition leader board information to the user system 712 associatedwith the first user. After transmitting the recognition leader boardinformation, the method 1200 can proceed to block 1206.

At block 1206, the recognition leader board information can betransmitted to the user system associated with the first user fordisplay. For example, the system processor 717 can transmit therecognition leader board information to the user system 712 associatedwith the first user for display in the recognition user interface 300.The recognition leader board information can be displayed in an orderedlist. An exemplary recognition user interface is shown in Figure 3B. Asshown, each entry in the displayed list can include an image of a user304, the username 306 and the number of recognitions the user hasearned. The number of recognitions the user has earned can be the pointseach user has earned. In the event the ordered list cannot be displayedfully, a partial list can be displayed and navigation tools can bedisplayed to allow the user to navigate through the ordered list (notshown). The recognition user interface 300 can include informationassociated with the user who requested to view the recognition userinterface 300. For example, an image 304 of the user, the user name 306,the number of recognitions or points the user earner 308 and the rank312 of the user can be displayed as shown in FIG. 3B. The recognitionuser interface 300 can include recognition comments 330 associated withthe leader as shown in FIG. 3B. Each comment 330 can include an image326 of the user who awarded the recognition, the user name who awardedthe recognition and the user name who received the recognition 328, anda timestamp 332. After displaying the recognition leader board, themethod 1200 can proceed to block 1208.

At block 1108, a request for recognition information for a designateduser can be received. For example, in response to the first userdesignating a user, the user system 712 associated with the first usercan transmit the request to the system processor 717 which receives therequest. The request for recognition information for a designated usercan be in response to the user selecting the find me link 326 displayedon the recognition user interface 300. The request for recognitioninformation for a designated user can be in response to a user selectinga user from the displayed list of users. The request can include thename of the designated user. After receiving the request to find thedesignated user, the method 1200 can proceed to block 1210.

At block 1210, recognition information can be obtained. For example, thesystem processor 717 can access one or more databases 822 to obtain apartial list of users in the leader board including the designated user,comments associated with the designated user, an image of the designateduser, the number of recognitions the designated user has earned, and therank the designated user has earned. After obtaining the additionalrecognition information, the method 1200 can proceed to block 1212.

At block 1212, the recognition information can be transmitted fordisplay. For example, the system processor 717 can transmit therecognition information to the user system 712 of the user who requestedthe recognition associated with the designated user for display. Thedisplay can show the designated user in the recognition leader board.The information corresponding to the user can be emphasized. Theemphasis can include listing the user first in the partial ordered list,listing the user in the middle of the partial ordered list, or thelisting of the user can be highlighted, bolded, or shown in a differentcolor. The displayed information can include comments associated. Thedisplayed information can include an image of the designated user, therecognitions the designated user has earned and the rank of thedesignated user.

Challenge

Referring to FIG. 13, a flowchart for a method for a user to participatein a challenge of an enterprise social network in accordance with anexemplary implementation is illustrated. The exemplary method 1300 isprovided by way of example, as there are a variety of ways to carry outthe method. The method 1300 described below can be carried out using theuser systems and communication network shown in FIGS. 7 and 8 by way ofexample, and various elements of these figures are referenced inexplaining exemplary method 1300. Each block shown in FIGS. 13represents one or more processes, methods or subroutines, carried out inexemplary method 400. The exemplary method 1300 may begin at block 1302.

At block 1302, a request to select a specific challenge from a list ofchallenges is received. For example, the processor system 717 canreceive a request, from a user system 712, selecting a specificchallenge from a list of challenge a user is a participant in. The listof challenges can be displayed in a challenge user interface 400 asshown in FIG. 6B. After receiving the request, the method 1300 canproceed to block 1304.

At block 1304, the information associated with the selected challengeincluding points associated with an action can be obtained. For example,the processor system 717 can access one or more databases 822 to obtaininformation associated with the selected challenge. The informationassociated with the selected challenge can include a name of thechallenge parameter, a description parameter, an action parameter, apoints per action parameter, a start date parameter, an end dataparameter, a number of participants parameter, and a points categoryparameter. The different categories can include, but is not limited to,sales points, philanthropy points, wellness points; organization points,and developer points. In one or more embodiments, the informationassociated with a challenge can include a private parameter. The privateparameter can indicate if a challenge is a private challenge or a publicchallenge. For private challenges, the owner of the challenge can inviteusers to participate or can designate users as being part of thechallenge, with all other users excluded. For public challenges, thechallenge is open, so a user can elect to participate in the challenge.The owner of the challenge can enter the information associated withchallenge parameters when the challenge is setup. This is explained infurther detail below. After obtaining the information, the method 1300can proceed to block 1306.

At block 1306, the specific information can be transmitted for display.For example, the processor system 717 can transmit the specificinformation to the user system 712 for display. The user system 712 candisplay the specific information in the challenge user interface 400 inresponse to receiving the specific information. For example, ascreenshot of a specific challenge is shown in FIG. 6B. As shown, thedescription is “a 5K Charity Race 412, the start date is “1/19/2011”414, the end date is “3/19/2011” 416, the action is “Run a race, get 10points” 418, the points per action is “10” 420, and participants inchallenge is “10” 430. After displaying the specific information, themethod 1300 can proceed to block 1308.

At block 1308, an action associated with the specific challenge can bereceived. For example, the user can select the record an action link 408to enter the action. In response to record an action link 408 beingselected, the user system 712 can transmit the action to the processorsystem 717. After receiving the action, the method 1300 can proceed toblock 1310.

At block 1310, a profile associated with the user can be accessed. Forexample, the processor system 717 can access one or more databases 822to obtain a profile associated with the user. After accessing theprofile associated with the user, the method 1300 can proceed to block1312.

At block 1312, a total points parameter associated with the profile canbe updated. For example, the processor system 717 can update the totalpoints parameter by adding points associated with the action to a totalpoint value associated with the total points parameter in response toreceiving the action. After updating the total points parameter, themethod 1300 can proceed to block 1314.

At block 1314, the updated total point value can be stored. For example,the processor system can store the updated total point value in the oneor more databases 822.

Challenges Leader Board

Referring to FIG. 14, a flowchart for a method for displaying achallenge leader board for an enterprise social network in accordancewith an exemplary implementation is illustrated. The exemplary method1400 is provided by way of example, as there are a variety of ways tocarry out the method. The method 1400 described below can be carried outusing the user systems and communication network shown in FIGS. 7 and 8by way of example, and various elements of these figures are referencedin explaining exemplary method 1400. Each block shown in FIGS. 14represents one or more processes, methods or subroutines, carried out inexemplary method 1400. The exemplary method 1400 may begin at block1402.

At block 1402, a request to select a specific challenge from a list ofchallenges can be received. For example, the processor system 717 canreceive a request, from a user system 712, selecting a specificchallenge from a list of challenge a user is a participant in. The listof challenges can be displayed in a challenge user interface 400 asshown in FIG. 6B. After receiving the request, the method 1400 canproceed to block 1404.

At block 1404, the information associated with the selected challenge,challenge leader board information based on the points category, anduser challenge information can be obtained. For example, the processorsystem 717 can access one or more databases 822 to obtain informationassociated with the selected challenge. The information associated withthe selected challenge can include a name of the challenge parameter, adescription parameter, an action parameter, a points per actionparameter, a start date parameter, an end data parameter, a number ofparticipants parameter, and a points category parameter. The differentcategories can include, but is not limited to, sales points,philanthropy points, wellness points; organization points, and developerpoints. The challenge leader board information can be obtained from oneor more files associated with recognition user interface 300 based onthe points category or can be generated by querying one or more filesassociated with the users of the enterprise social enterprise with thequery including the points category parameter. The user challengeinformation can include number of points the first user has earned, thenumber of actions the first user has performed, and the leader boardposition of the first user. The user challenge information is based onthe points category associated with the selected challenge. Afterobtaining the information, the method 1400 can proceed to block 1406.

At block 1406, the obtained information can be transmitted for display.For example, the processor system 717 can transmit the obtainedinformation to the user system 712 for display. The user system 712 candisplay the specific information and the challenge leader boardinformation in the challenge user interface 400 in response to receivingthe specific information. For example, a screenshot of a specificchallenge is shown in FIG. 6B. As shown, the description is “a 5KCharity Race” 412, the start date is “1/19/2011” 414, the end date is“3/19/2011” 416, the action is “Run a race, get 10 points” 418, thepoints per action is “10” 420, and participants in challenge is “10”430. As shown, the challenge leader board information can be displayedwith the leader board being based on the points category. As shown, theleader is Lanini Arunchalam 476 with forty (40) points 460. Thechallenge information associated with the first user for the pointscategory associated with the selected challenge is also shown. The firstuser has earned thirty (30) points 460, performed three (3) actions 464,and is ranked second 468.

Referring to FIG. 15, a flowchart for a method for reviewing my statsinformation related to a user of an enterprise social network inaccordance with an exemplary implementation is illustrated. Theexemplary method 1500 is provided by way of example, as there are avariety of ways to carry out the method. The method 1500 described belowcan be carried out using the user systems and communication networkshown in FIGS. 7 and 8 by way of example, and various elements of thesefigures are referenced in explaining exemplary method 1500. Each blockshown in FIGS. 15 represents one or more processes, methods orsubroutines, carried out in exemplary method 15000. The exemplary method1500 may begin at block 1502.

At block 1502, a request to access the my stats user interface for auser of the enterprise social network can be received. For example, theuser can select the my stats link 128 from a user interface displayed ona user system 712, such as the home page as shown in FIG. 1A. The usersystem 712 can send the request to the processor system 717. The requestcan be for the my stats user interface 500 associated with the user toreview his or her own statistical information. The request can includethe name of the user of the enterprise social network. After receivingthe request to access the my stats user interface 500, the method 1500can proceed to block 1504.

At block 1504, information to populate the fields of the my stats userinterface can be obtained. For example, in response to receiving therequest the processor system 717 can access obtain information from oneor more external software systems, such as GU-OS CRM. The informationcan include statistics associated with the user's performance, such as,but not limited to, bugs/test failures fixed, cases fixed, average daysfor fixed bugs/test failures, bugs currently opened, average number ofbugs/test failures to fix per day, and number of checkins Each of thestatistics can include the percentage for the team and percentage forthe organization. In one or more embodiments, the statistics can beobtained from one or more, internal and/or external software systems.For example, the software systems can be a time entry system, a documentmanagement system that includes types of documents, a backend system, orany other external software system that can provide statistics ofprojects the user is working on, scheduled to work on, and/or has workedon. After populating the fields of the my stats user interface 500, themethod 1500 can proceed to block 1506.

At block 1506, the about me user interface and associated informationcan be transmitted. For example, the processor system 717 can transmitthe about me user interface 200 and associated information to the usersystem 712 associated with the first user. For example, the user system712 can receive the information and display the about me user interface200 and associated information as shown in FIG. 5B.

Referring to FIG. 16, a screenshot of a challenge templates userinterface in accordance with an exemplary embodiment is illustrated. Toaccess the challenge templates user interface 1600, a user can click onthe challenge templates link 112 from a user interface, such as the homeuser interface 100. As shown, the challenge templates user interface1600 can include an application taskbar 102, a user name field 114, animage field 116, a search link 117, an activity bar 118, and a personallinks bar 120 which were described earlier. The challenge templates userinterface 1600 can include a view field 1602, a “go!” button 1606, anedit link 1608, and a create new view link 1610. The view field 1602 caninclude a drop down menu 1604 to select the view. The drop down menu1604 can include menu items to view challenge templates, such as all,recent, and mine. The go! button 1606 when selected causes the challengetemplates based on the view to be displayed. As shown, the recentchallenge templates are displayed. The edit link 1608 allows a user withadministrative authority to edit the drop down menu items of the view.The create new view 610 allows a user with administrative authority tocreate new views for templates. Only users with administrative authoritycan create challenge templates. In one or more embodiments, all userscan have administrative authority to create challenge templates. Onlyusers with administrative authority can create challenges. In one ormore embodiments, all users can have administrative authority to createchallenges.

The challenge templates user interface 1600 can include a display area1612 to display previously created templates based on the menu item inthe view field 1602 and can create new challenge templates. The displayarea 1612 can include a table with headers. The headers can include, butare not limited to, challenge template name 1614, description 1616,action 1618, points per action 1620, type of points 1622, pointscategory 1624, and owner alias 1626. The challenge template name header1614 can lists the name of each challenge template. The description nameheader 1616 can list a description of each challenge template. Theaction header 1618 can list the different actions users can perform toearn points or dollars. The points per action header 1620 can list thenumber of points or dollars a user can earn. The type of points header1622 can list the type of points, which can be points or dollars. In oneor more embodiments, there can be additional types of points such ascompensation time. The points category header 1624 can lists the pointscategory for each template. The points category can include, but is notlimited to, sales points, philanthropy points, wellness points,organizational points, and developer points. The owner alias header 1626can list the originator of each challenge template. The first challengetemplate if for a catch fish challenge 1614 which is a challenge aroundcatching more fish (customers or clients) 1616. For each fish that iscaught 1618, the user can earn ten dollars ($10) 1620, 1622 which is inthe sales points category 1624. The alias of the owner or creator of thechallenge template is cporr 1626. The display area 1612 can also includea new link 1628 to allow a user to create a new challenge template.

Referring to FIG. 17, a screenshot of a new challenge templates userinterface in accordance with an exemplary embodiment is illustrated. Thenew challenge template user interface 1700 can be used to generate a newchallenge template. For example, a user can select the new link 1628from the challenge templates user interface 1700 to access the newchallenge Template user interface 1700. As shown, the new challengetemplates user interface 1700 can include an application taskbar 102, auser name field 114, an image field 116, a search link 117, an activitybar 118, and a personal links bar 120 which were described earlier. Asshown, the specific challenge user interface 700 can have a challengetemplate name field 1702, a description field 1704, an action field1706, a points per action field 1708, a type of points field 1710, and apoints category field 1714. The challenge template name field 1702 caninclude the name of the challenge template. The description field 1704can include a description of the challenge template. The action field1706 can include one or more actions users can perform to earn points.The points per action field 1708 can include an amount of points a usercan earn for completing an action. The type of points field 1710 caninclude a drop down menu 1710 for selecting the type of points, such aspoints or money. The points category field 1714 can include a drop downmenu 1716 for selecting a points category, which can include, but is notlimited to, sales points, philanthropy points, wellness points,organization points, and developer points. The Challenge Templates userinterface 1700 can include a save button 1720, save and new button 1722,and a cancel button 1724. The save button 1720, when selected can save anew challenge template. After the new challenge template is saved, thehome user interface, such as the Feedback user interface 100, can bedisplayed. The save and new button 1722, when selected can save a newchallenge template and return the user to the new challenge templateuser interface 1700 to create another new challenge template. The cancelbutton 1725, when selected can cancel the creation of a new challengetemplate and can return the user to the new challenge template userinterface 1700.

Referring to FIG. 18, a screenshot of a new challenge user interfacehaving entered data in accordance with an exemplary embodiment isillustrated. The new challenge user interface 1800 can be used togenerate a new challenge. For example, a user can select the new link1628 from the challenge templates user interface 1700 to access the newchallenge user interface 1700. As shown, the new challenge userinterface 1800 can include an application taskbar 102, a user name field114, an image field 116, a search link 117, an activity bar 118, and apersonal links bar 120 which were described earlier. As shown, thechallenge name is “Dev Team Foundation Challenge” 1802. The challenge isbased on the 1% Foundation template 1804. The description of thechallenge is “Dev team is running a foundation challenge” 1806. Thechallenge can have a maximum of one hundred (100) participants 1808. Thechallenge starts on May 1, 2011 1810 and ends on Jul. 31, 2011 1814. Thechallenge is not an invitation only 1818 challenge. In the event theinvitation only option 1818 was selected, then each participant wouldhave to be invited. The challenge is also not a private challenge. Inthe event the private status option 1820 was selected, then only theparticipants that were invited would be able to view the challenge.

Referring to FIG. 19, a screenshot of a specific challenge in accordancewith an exemplary embodiment is illustrated. As shown, the screenshot1900 include the name of a challenge which is “Dev Team FoundationChallenge” 1902. The description of the challenge is “Dev team isrunning a foundation challenge” 1904. The challenge starts on May 1,2011 1906 and ends on Jul. 31, 2011 1908. To earn one (1) point 1912,the user need do complete one (1) hour of volunteering 1910. Thescreenshot 1900 includes a drop down menu 1916 to allow a user to viewthe challenges the user is in. The participants 1920 in the “Run in aFun Race Challenge” include Ron Hess, Herman Kwong, Dan McGarry, JoshuaNewman, Cheryl Porro, Jonathan Hersch, and Ryan Zotter. The user canselect one or more users from the Run in a Fun Race Challenge to add tothe Dev Team Foundation Challenge. To do so, the user can select one ormore users and drag the users name over to the participants box 1928. Toselect more than one user, the user can use press the control key andselect each user to add using a navigation tool or can use the shift keyand select a top name and a bottom name to select a group ofconsecutively listed users. Other selection means can be used to add agroup of participants to a challenge. The user can also search for usersby entering a user name in the name field 1922 and select the searchbutton 1924. To clear the name field 1922, the user can select thecancel button 1926. To save the challenge, the user can select the savebutton 1930. The cancel the challenge, the user can select the cancelbutton 1932.

While one or more implementations have been described by way of exampleand in terms of the specific embodiments, it is to be understood thatone or more implementations are not limited to the disclosedembodiments. To the contrary, it is intended to cover variousmodifications and similar arrangements as would be apparent to thoseskilled in the art. Therefore, the scope of the appended claims shouldbe accorded the broadest interpretation so as to encompass all suchmodifications and similar arrangements.

1. A method for providing an about me user interface for an enterprisesocial network including users associated with an entity, the methodcomprising: receiving, by a processor system of the enterprise socialnetwork, a request for user information, the request including a name ofa user of the enterprise social network; obtaining user information,from one or more databases associated with the enterprise socialnetwork, in response to receiving the request, the obtained userinformation comprising information previously obtained from the nameduser and information obtained from one or more external software systemsthat the named user is currently assigned; and transmitting, by theprocessor system, the obtained information to a user system associatedwith a user who requested the user information for display.
 2. Themethod of claim 1 wherein the obtained information previously obtainedfrom the named user comprises at least one of summary information andfuture information, the summary information comprising a description ofprojects the named user has previously worked on and the futureinformation comprising a description of work the named user desires towork on.
 3. The method of claim 1 wherein the obtained informationobtained from one or more external software systems that the named userhas previously worked with and comprises a description of one or moreprojects the named user is currently assigned.
 4. The method of claim 1wherein the obtained information obtained from one or more externalsoftware system that the named user has previously worked with andcomprises a description of one or more projects the named user iscurrently assigned on comprises a percentage of time the user has workedon each project for a given time period and an associated job title. 5.The method of claim 4 wherein the obtained information obtained from oneor more external software systems that the named user has previouslywith worked with and comprises an area of expertise based on the one ormore projects currently assigned to the named user.
 6. The method ofclaim 4 wherein the obtained information obtained from one or moreexternal software systems that the named user has previously with workedwith and comprises a list of files that the user has previously workedon.
 7. The method of claim 1 wherein the requesting user and the namedusers are the same user or different users of the enterprise socialnetwork.
 8. A machine-readable medium carrying one or more sequences ofinstructions for providing an about me user interface for an enterprisesocial network including users associated with an entity, whichinstructions, when executed by one or more processors, cause the one ormore processors to carry out the steps of: receiving, by a processorsystem of the enterprise social network, a request for user information,the request including a name of a user of the enterprise social network;obtaining user information, from one or more databases associated withthe enterprise social network, in response to receiving the request, theobtained user information comprising information previously obtainedfrom the named user and information obtained from one or more externalsoftware systems that the named user is currently assigned; andtransmitting, by the processor system, the obtained information to auser system associated with a user who requested the user informationfor display.
 9. The machine-readable medium of claim 8 wherein theobtained information previously obtained from the named user comprisesat least one of summary information and future information, the summaryinformation comprising a description of projects the named user haspreviously worked on and the future information comprising a descriptionof work the named user desires to work on.
 10. The machine-readablemedium of claim 8 wherein the obtained information obtained from one ormore external software systems that the named user has previously workedwith and comprises a description of one or more projects the named useris currently assigned.
 11. The machine-readable medium of claim 8wherein the obtained information obtained from one or more externalsoftware system that the named user has previously worked with andcomprises a description of one or more projects the named user iscurrently assigned comprises a percentage of time the user has worked oneach project for a given time period and an associated job title. 12.The machine-readable medium of claim 11 wherein the obtained informationobtained from one or more external software systems that the named userhas previously worked with and comprises an area of expertise based onthe one or more projects currently assigned to the named user.
 13. Themachine-readable medium of claim 11 wherein the obtained informationobtained from one or more external software systems that the named userhas previously worked with and comprises a list of files that the userhas previously worked on.
 14. The machine-readable medium of claim 8wherein the requesting user and the named users are the same user ordifferent users of the enterprise social network.
 15. An apparatus forproviding an about me user interface for an enterprise social networkincluding users associated with an entity, the apparatus comprising: aprocessor system; and one or more stored sequences of instructionswhich, when executed by the processor system, cause the processor tocarry out the steps of: receiving a request for user information, therequest including a name of a user of the enterprise social network;obtaining user information, from one or more databases associated withthe enterprise social network, in response to receiving the request, theobtained user information comprising information previously obtainedfrom the named user and information obtained from one or more externalsoftware systems that the named user is currently assigned; andtransmitting the obtained information to a user system associated with auser who requested the user information for display.
 16. The apparatusof claim 15 wherein the obtained information previously obtained fromthe named user comprises at least one of summary information and futureinformation, the summary information comprising a description ofprojects the named user has previously worked on and the futureinformation comprising a description of work the named user desires towork on.
 17. The apparatus of claim 15 wherein the obtained informationobtained from one or more external software systems that the named userhas previously worked with and comprises a description of one or moreprojects the named user is currently assigned.
 18. The apparatus ofclaim 15 wherein the obtained information obtained from one or moreexternal software system that the named user has previously worked withand comprises a description of one or more projects the named user iscurrently assigned to work on comprises a percentage of time the userhas worked on each project for a given time period and an associated jobtitle.
 19. The apparatus of claim 15 wherein the obtained informationobtained from one or more external software systems that the named userhas previously worked with and comprises an area of expertise based onthe one or more projects currently assigned to the named user.
 20. Theapparatus of claim 15 wherein the obtained information obtained from oneor more external software systems that the named user has previouslyworked with and comprises a list of files that the user has previouslyworked on.